package com.start.common.dic;

import com.start.common.dataImport.ExcelContentType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface DictMapper {
    /**
     * excel head标题
     *
     * @return
     */
    String value();

    /**
     * 格式
     *
     * @return
     */
    String format() default "";

    /**
     * 数据源
     *
     * @return
     */
    String mapperDataSource() default "";

    /**
     * 数据表
     *
     * @return
     */
    String mapperTable() default "";

    /**
     * 数据值
     *
     * @return
     */
    String mapperValue() default "label";

    /**
     * 数据显示
     *
     * @return
     */
    String mapperLabel() default "value";


    /**
     * 静态数据映射
     * 此数据为 json 数据
     * 可根据mapperValue，mapperLabel 定义key,与vaule
     * 示例 mapperStatic="[{'label':'张上','value':'1200'}]"
     *
     * @return
     */
    String mapperStatic() default "";

    /**
     * 映射条件 不能以 select,form, where ,and
     *
     * @return
     */
    String tableCondition() default "";

    /**
     * 模板排序序号
     *
     * @return
     */
    int sort() default 0;

    boolean multiple() default false;

    /**
     * 多个数据分割符号
     *
     * @return
     */
    String multipleSplit() default ",";

    /**
     * 内容类型
     *
     * @return
     */
    ExcelContentType contentType() default ExcelContentType.TEXT;

    /**
     * 自定义格式化
     *
     * @return
     */
    Class<? extends DictDataFormat>[] formatHandler() default {};
}
